/*
* Copyright 2010 Competentum group
*
* Licensed under the GNU General Public License, Version 3.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*      http://www.gnu.org/licenses/gpl.html
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.competentum.lib.events
{
	import com.competentum.lib.events.CommandEvent;
	
	import flash.events.Event;
	
	/**
	 * Command event for parser engines
	 * 
	 */
	public class ParserEngineCommandEvent extends CommandEvent
	{
		
		/**
		 * Reason of loading config xml
		 * */
		public static const START_READING:String = 'startReading';
		/**
		 * Reason of saving config xml
		 * */
		public static const START_SAVING_CONFIGURATION:String = 'startSavingConfiguration';
		/**
		 * Reason of saving as... config xml
		 * */
		public static const START_SAVING_AS_CONFIGURATION:String = 'startSavingAsConfiguration';
		
		/**
		 * Reason of exporting correct expression
		 */		
		public static const GET_CORRECT_EXPRESSION:String = 'getCorrectExpression';
		
		/**
		 * Reason of exporting XML string
		 */		
		public static const GET_XML_STRING:String = 'getXmlString';
		
		/**
		 * Reason of exporting current answer string
		 */		
		public static const GET_ANSWER_STRING:String = 'getAnswerString';
		
		public var reason:String;
		public var url:String;
		
		public function ParserEngineCommandEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
		{
			super(type, bubbles, cancelable);
		}
		
		override public function clone():Event
		{
			var event:ParserEngineCommandEvent = new ParserEngineCommandEvent(type, bubbles, cancelable);
			event.reason = reason;
			event.commandType = commandType;
			event.url = url;
			return event;
		}
	}
}